import { server } from "./server";
import axios from "./http";

/**
 * 登录接口
 * @param params 
 * @returns 
 */
export function Login(params: object): any {
    return new Promise((resolve, reject) => {
        axios
            .post(server.loginUrl, params)
            .then((res) => {
                resolve(res.data);
            })
            .catch((err) => {
                reject(err.data);
            });
    });
}

/**
 * 注册接口
 * @param params 
 * @returns 
 */
export function Register(params:object):any{
    return new Promise((resolve, reject) => {
        axios
            .post(server.registerUrl, params)
            .then((res) => {
                resolve(res.data);
            })
            .catch((err) => {
                reject(err.data);
            });
    });
}

/**
 * 重置密码接口
 * @param params 
 * @returns 
 */
export function Reset(params:object):any{
    return new Promise((resolve, reject) => {
        axios
            .post(server.resetUrl, params)
            .then((res) => {
                resolve(res.data);
            })
            .catch((err) => {
                reject(err.data);
            });
    });
}

/**
 * 直接获取用户信息
 * @param params 
 * @returns 
 */
export function getUserInfo():any{
    return new Promise((resolve, reject) => {
        axios
            .post(server.getUserInfo)
            .then((res) => {
                resolve(res.data);
            })
            .catch((err) => {
                reject(err.data);
            });
    });
}

/**
 * 获取刷新之后的token
 * @param params 
 * @returns 
 */
let isRefreshing=false
let promiseRT:Promise<any>
export const getRefreshToken=()=>{
    if(isRefreshing){
        return promiseRT;
    }
    isRefreshing = true
   promiseRT= axios.post(server.getRefreshToken,{UserId:1,RoleId:1})
      .finally(()=>{
      isRefreshing=false
   });
   return promiseRT;
}


/**
 * 测试新的接口
 * @param loginInfo 
 * @returns 
 */
export const getAdmin=()=>{
    return axios({
        method:'POST',
        url:"/api/WeatherForecast/GetAdmin"
    })
}

